/*
文件批量重命名
此JS会识别本文件所在目录所有文件夹
新建js后，运行命令node xx.js
*/
var path = require("path");  //引入path模块
var fs = require("fs");  //引入fs模块，fs模块用于对系统文件及目录进行读写操作
var rootPath = __filename; //获得当前文件完整绝对路径
renameFilesInDir(path.dirname(rootPath)); //path.dirname返回路径中代表文件夹的部分
 
function changeFileName(filepath,num){
    fs.stat(filepath,function(err,stats){
        if(stats.isFile()){
            var filename = path.basename(filepath); //path.basename提取出一个文件路径中的文件的部分
            var parentDir =path.dirname(filepath);
            var parentDirname = path.basename(path.dirname(filepath)); 
            var thisFilename = path.basename(__filename);
            var extname=path.extname(filename); //获取后缀名
            //这个if就是进行更改文件名的逻辑,可以自行定义
            if(filename!=thisFilename&&filename.indexOf(parentDirname)<0){
                var newName = "photo"+num+extname;
                var newPath =parentDir+"\\"+newName;
                console.log(filepath+" 重命名为"+'\n'+"=====>"+newPath+"\n");
                fs.rename(filepath,newPath);    
            }
        }else if(stats.isDirectory()){
            console.log("============["+filepath+"] 是目录===========");
            renameFilesInDir(filepath);
        }else{
        console.log("未知文件类型");
        }
    });
}
function renameFilesInDir(dir){
    //readdir读取目录
    fs.readdir(dir,function(error,files){
        var len = files.length;
        var file = null;
        for(var i=0;i<len;i++){
            file = files[i];
            changeFileName(dir+"\\"+file,i);
        }
    });
}